package cn.tedu.store.admin.webapi.mapper;

import cn.tedu.store.commons.pojo.admin.entity.AdminRole;
import cn.tedu.store.commons.pojo.admin.vo.AdminRoleListItemVO;
import cn.tedu.store.commons.pojo.admin.vo.AdminRoleStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface AdminRoleMapper {
    /**
     * 添加管理员与角色关联信息
     *
     * @param adminRole 管理员与角色关联信息
     * @return 受影响行数
     */
    int insert(AdminRole adminRole);

    /**
     * 根据id删除信息
     *
     * @param id id
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 修改管理员与角色关联信息
     *
     * @param adminRole 管理员与角色关联信息
     * @return 受影响的行数
     */
    int updateById(AdminRole adminRole);

    /**
     * 根据id查询管理员与角色关联信息
     * @param id id
     * @return 受影响的行数
     */
    int countById(Long id);

    /**
     * 根据id查询管理员与角色关联信息
     * @param adminId 管理员id
     * @param roleId 角色id
     * @return 受影响的行数
     */
    int countByAdminIdRoleId(Long adminId, Long roleId);

    /**
     * 根据角色id查询管理员与角色关联详情
     *
     * @param id 角色id
     * @return 受影响的行数
     */
    AdminRoleStandardVO getStandardById(Long id);

    /**
     * 查询所有角色信息
     *
     * @return 所有角色详情
     */
    List<AdminRoleListItemVO> list();
}
